﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using MeizuSDK.Drawing;

namespace MeizuSDK.Presentation
{
    public delegate void OnMzCommandFunc(uint wParam, uint lParam);
    public delegate uint MzDefWndProcFunc(uint message, uint wParam, uint lParam);
    public delegate void MzWndOnInitDialog();
    public delegate uint PreTranslateMessageFunc(MSG msg);
    public delegate void OnLostFocusFunc(IntPtr pObj);
    public delegate void OnFocusedFunc(IntPtr pObj);

    /// <summary>
    /// 接收WM_SETTINGCHANGE消息后会调用此委托
    /// </summary>
    /// <param name="wFlag"></param>
    /// <param name="pszSectionName"></param>
    public delegate void OnSettingChange(uint wFlag,string pszSectionName);
    /// <summary>
    /// 当屏幕显示方向发生改变时调用此委托
    /// </summary>
    /// <param name="dmDisplayOrientation"></param>
    public delegate void OnScreenRotated(uint dmDisplayOrientation);
    /// <summary>
    /// 控件自绘委托
    /// </summary>
    /// <param name="hdcDst"></param>
    /// <param name="prcWin"></param>
    /// <param name="prcUpdate"></param>
    public delegate void PaintWinFunc(IntPtr hdcDst, ref RECT prcWin, ref RECT prcUpdate);
    /// <summary>
    /// 控件自绘委托2
    /// </summary>
    /// <param name="hdcDst"></param>
    /// <param name="prcUpdate"></param>
    public delegate void PaintWinFunc2(IntPtr hdcDst, ref RECT prcUpdate);
    /// <summary>
    /// 鼠标事件委托函数
    /// </summary>
    /// <param name="fwKeys"></param>
    /// <param name="xpos"></param>
    /// <param name="ypos"></param>
    public delegate int MouseEventFunc(uint fwKeys, int xpos, int ypos);
    /// <summary>
    /// 定时器委托
    /// </summary>
    /// <param name="nIDEvent"></param>
    public delegate void TimerFunc(uint nIDEvent);
    /// <summary>
    /// 列表项绘制委托
    /// </summary>
    /// <param name="hdcDst">目的DC </param>
    /// <param name="nIndex">要绘制的项的索引</param>
    /// <param name="prcItem">列表项所在的矩形区域</param>
    /// <param name="prcWin">列表控件所在区域</param>
    /// <param name="prcUpdate">控件需要重画的区域.为优化绘制速度，不包含在prcUpdate区域内的内容请不要绘制</param>
    delegate void DrawItemDelegate(IntPtr hdcDst, int nIndex, ref RECT prcItem, ref RECT prcWin, ref RECT prcUpdate);
}
